While photograph applications, video applications, and other content sharing applications have become increasingly popular, the services and features currently provided by these sorts of applications come with inherent limitations. Recognizing these limitations, online content management systems (“CMSs”) offer a user a convenient portal for cloud storage and interactivity with his or her content. In such systems, as well as in applications running on user devices which they support, users may upload and perform various operations on content, such as photographs and videos, for example. Some of these operations may be quite complex, and may involve large amounts of content. Such operations may, for example, include uploading photographs or videos to a user account, receiving shares of photographs or videos from other users and copying them to their own account, sharing them with other users of the content management system, creating albums or collections of such content and sharing same, interacting with the content items or any user defined aggregations of the content, and interacting with the shares in various ways.
Conventionally, there are various options for implementing a local application on a user device. For example, the local application may be implemented fully locally in that all content is stored and managed on the user device. Thus, in order to share content, the local application may rely on electronic communications to pass content directly to and from other users' devices. However, this type of implementation limits the amount of content a user may store in his account to the capacity of his or her user device. Further, complex messaging and data management techniques may be required to replicate the state of content items that are exchanged or shared across all relevant user devices.
Alternatively, a local application may interface with an application running on a server that manages and stores the user's content. In this implementation, the server may control, store, and/or manage content associated with any user account on the system. The server may also record any changes, shares, messages, etc. between users inter se, or users and third parties. This server-managed option affords the best opportunities for storing large amounts of user data (since the data need not be stored in the user's local device) as well as for managing sharing and other interactions between users of the content management system.
One drawback of the server driven model is that local interaction with the user's content is limited to when connectivity between the user device and the server is sufficiently high. If a user device is weakly or intermittently connected to the content management system server across a data network (e.g., a smartphone connected to a cellular network), content created and actions taken locally on the user device that require the content management system server to store, acknowledge, organize, or otherwise manage the user's data cannot be processed until suitable network connectivity is restored. Thus, for example, while a user may attempt to upload a collection of photographs from her smartphone using a local application, the photographs may not actually be uploaded to the server for many hours and, therefore, content management functionality such as sharing, reviewing, editing, for example, may not be immediately available.
It would be highly desirable for the user to be able to experience a seamless response of a local content management system application regardless of connectivity with the content management system server, to facilitate (i) the creation of content, (ii) the addition of content items or messages to a user account or other user accessible data structure, (iii) the downloading of shared content to a personal account within the content management system, and (iv) other responses to his or her interactions with the application. At the same time, unless connectivity to the server is guaranteed to be sufficient, this is not always possible because while the connectivity on a user device between the user interface and a local application is permanent, the connection between the local application and the remote server may often be intermittent.
What are needed in the art are systems and methods for providing access to a cloud based content management system on a user device.